import Vue from 'vue'
import Vuex from "vuex"

// 通过全局方法 Vue.use() 使用插件。它需要在你调用 new Vue() 启动应用之前完成
Vue.use(Vuex)

// 首页tab切换传输存储的值
const list={
	listing:[]
}
// tab切换的状态
const load={
	loading:''
}
const navmin={
	loading:'',
	naving:'recommend',
	pageid:"",
	status:"",
	loadMore:'',
	nonedata:""
	
}
// tab切换没有数据的提示
const nonemin={
	nonedata:''
}

// 数据仓库
const state={
	list,
	load,
	navmin,
	nonemin
}
const store = new Vuex.Store({
    state,
	// 同步操作	
    mutations: {
		// 第三步
		// 两个参数,一个仓库(固定的参数),一个commit传过来的listdata
		listmut(state,listdata){
			// console.log("mutations",listdata)
			// 将content.vue,dispatch的listdata传到数据仓库里
			state.list={
				listing:listdata
			}
		},
		// tab切换的loading状态
		loadmut(state,loading){
			state.load={
				loading:loading
			}
		},navmuta(state,pullobj){
			console.log("状态值:",pullobj)
			state.navmin={
				loading:pullobj.loading,
				naving:pullobj.nav,
				pageid:pullobj.pageid,
				status:pullobj.status,
				loadMore:pullobj.loadMore,
				nonedata:pullobj.nonedata
			}
		},
		// tab切换没有数据的提示noneion 名字可以和传过来数据的名字不一样
		nonemuta(state,noneion){
			console.log("noneion",noneion)
			state.nonemin={
				nonedata:noneion
			}
		}
	},
	// 可以执行异步操作 ----可以省略掉，一般复杂的采用这个
 //    actions: {
		
	// 	// 第二步
	// 	// content.vue里的listact指向listact()这个函数,listacts指向mutations里用来commit，这些名字都是自定义的，只要前后保持一致就可以
	// 	listact(listacts,listdata){
	// 		// console.log("action",listdata)
	// 		 listacts.commit('listmut',listdata)
	// 	}
	// }
})

export default store


